/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package PaqCliente;

import PaqCORBA.ClienteCORBAPOA;
import PaqCORBA.GestorCORBA;
import PaqCORBA.SesionCORBA;
import PaqComunicaciones.CorbaConexionCliente;



/**
 *
 * @author alumno
 */
public class Usuario extends PaqCORBA.ClienteCORBAPOA {

    void entrar(String nameServer, int puerto, UserGUI _clienteGui) {
        clienteGui = _clienteGui;
        corbaConexionCliente = new CorbaConexionCliente(puerto, nameServer);
        gestorCORBA = corbaConexionCliente.resolverExamenesOnline("Gestor");
        String nombre_sesion = gestorCORBA.entrar();
        sesionCORBA = corbaConexionCliente.resolverSesion(nombre_sesion);
        setConectado(true);

        // Registra el cliente -> lanza orb.run() -> necesita un hilo
        nombreCliente = new String(nombre_sesion + "Cliente");
        RegistroCliente regCli = new RegistroCliente(this, nombreCliente);
        regCli.start();
        throw new UnsupportedOperationException("Not yet implemented");
    }

    /*public boolean autenticar(String user, String pass) {
        return sesionCORBA.entrar(user, pass);
        
    }*/
    
    private class RegistroCliente extends Thread {

        private Usuario cli;
        private String nombreCliente;

        public RegistroCliente(Usuario _cli, String _nomCli) {
            cli = _cli;
            nombreCliente = _nomCli;
        }

        @Override
        public void run() {
            cli.corbaConexionCliente.registrarCliente(cli, nombreCliente);
        }
    }
    
    public Usuario(){}
    private boolean conectado = false;
    protected GestorCORBA gestorCORBA;
    protected SesionCORBA sesionCORBA;
    protected CorbaConexionCliente corbaConexionCliente;
    private String nombreCliente;
    private UserGUI clienteGui;
    
    /*public void entrar(String nameServer, int puerto, Autenticacion _clienteGui) {
        //boolean ok = false;
        //if(usuario.equals("user") && password.equals("user")) {
        //    ok = true;
        //}
        //return ok;
        clienteGui = _clienteGui;
        corbaConexionCliente = new CorbaConexionCliente(puerto, nameServer);
        gestorCORBA = corbaConexionCliente.resolverMediateca("Gestor");
        String nombre_sesion = gestorCORBA.entrar();
        sesionCORBA = corbaConexionCliente.resolverSesion(nombre_sesion);
        setConectado(true);

        // Registra el cliente -> lanza orb.run() -> necesita un hilo
        nombreCliente = new String(nombre_sesion + "Cliente");
        RegistroCliente regCli = new RegistroCliente(this, nombreCliente);
        regCli.start();
    }*/
    
     public void aviso(String info) {
        //clienteGui.aviso(info);
    }
    
     public void setConectado(boolean _conectado) {
        conectado = _conectado;
    }
    
}
